;; extends

; hide useless characters
(_ (";" @conceal (#set! conceal "")) .)
; (for_statement initializer: (declaration (";" @punctuation.delimiter (#set! conceal ";")) .))
(condition_clause . ("(" @conceal (#set! conceal "")))
(condition_clause (")" @conceal (#set! conceal "")) .)

; prettier operators
("..." @operator (#set! conceal "…"))
(operator_name "operator" @conceal (#set! conceal ""))

; prettier constants
; ((nullptr) @constant (#set! conceal "∅"))

; prettier punctuation
(template_parameter_list . ("<" @punctuation.bracket (#set! conceal "⟨")))
(template_parameter_list (">" @punctuation.bracket (#set! conceal "⟩")) .)
(template_argument_list . ("<" @punctuation.bracket (#set! conceal "⟨")))
(template_argument_list (">" @punctuation.bracket (#set! conceal "⟩")) .)
("::" @punctuation.delimiter (#set! conceal "∷"))

; shorten annoying stuff
((namespace_identifier) @module (#eq? @module "std") (#set! conceal "§"))
((destructor_name) @function.method (#set! conceal "~"))
